package org.eddycar.jproyeddycar.contrato.modelo;


import java.util.ArrayList;
import java.util.List;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Vehiculo implements Serializable {

    @Id
    private String placa;
    private String marca;
    private String tipo;
    private String modelo;
    private String color;
    private String numMotor;
    private String numChasis;
    private String clase;
    private double precioCompra;
    private int anioFabricante;
    private String MatriculadoEn;
    private String foto;
    private double cilindraje;
    private String nombreMatricula;
    private double precioExtra;    
    private String fecha;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "vehiculo")
    private List<Modificacion> modificaciones = new ArrayList<Modificacion>();

    @Enumerated(EnumType.STRING)
    private EstadoVehiculo estado = EstadoVehiculo.DISPONIBLE;

    public double getPrecioExtra() {
        return precioExtra;
    }

    public void setPrecioExtra(double precioExtra) {
        this.precioExtra = precioExtra;
    }

    public String getNombreMatricula() {
        return nombreMatricula;
    }

    public void setNombreMatricula(String nombreMatricula) {
        this.nombreMatricula = nombreMatricula;
    }

    public double getCilindraje() {
        return cilindraje;
    }

    public void setCilindraje(double cilindraje) {
        this.cilindraje = cilindraje;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public String getFecha() {
        return fecha;
    }

   

    

    public String getFoto() {
        return foto;
    }

    public void setFoto(String foto) {
        this.foto = foto;
    }
    
    public List<Modificacion> getModificaciones() {
        return modificaciones;
    }

    public void setModificaciones(List<Modificacion> modificaciones) {
        this.modificaciones = modificaciones;
    }
    

    public EstadoVehiculo getEstado() {
        return estado;
    }

    public void setEstado(EstadoVehiculo estado) {
        this.estado = estado;
    }

    public String getClase() {
        return clase;
    }

    public void setClase(String clase) {
        this.clase = clase;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getMatriculadoEn() {
        return MatriculadoEn;
    }

    public void setMatriculadoEn(String MatriculadoEn) {
        this.MatriculadoEn = MatriculadoEn;
    }

    public int getAnioFabricante() {
        return anioFabricante;
    }

    public void setAnioFabricante(int anioFabricante) {
        this.anioFabricante = anioFabricante;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getNumChasis() {
        return numChasis;
    }

    public void setNumChasis(String numChasis) {
        this.numChasis = numChasis;
    }

    public String getNumMotor() {
        return numMotor;
    }

    public void setNumMotor(String numMotor) {
        this.numMotor = numMotor;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public double getPrecioCompra() {
        return precioCompra;
    }

    public void setPrecioCompra(double precioCompra) {
        this.precioCompra = precioCompra;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public Vehiculo() {
    }


    public Vehiculo(String placa, String marca, String tipo, String modelo, String color, String numMotor, String numChasis, double precioCompra, int anioFabricante, String MatriculadoEn, String foto, String fecha, String clase, double cilindraje) {
        this.cilindraje=cilindraje;
        this.clase = clase;
        this.placa = placa;
        this.marca = marca;
        this.tipo = tipo;
        this.modelo = modelo;
        this.color = color;
        this.numMotor = numMotor;
        this.numChasis = numChasis;
        this.precioCompra = precioCompra;
        this.anioFabricante = anioFabricante;
        this.MatriculadoEn = MatriculadoEn;
        this.foto = foto;
        this.fecha = fecha;
    }

    public double precioFinal() {
        return (getPrecioCompra() + getPrecioExtra());
    }
}
